|
If you can't view the Datasheet, Please click here to try to view without PDF Reader . |
|
Datasheet File OCR Text: |
? semiconductor components industries, llc, 2009 may, 2009 ? rev. 7 1 publication order number: amis ? 30623/d AMIS-30623 micro-stepping motor driver introduction the amis ? 30623 is a single ? chip micro ? stepping motordriver with position controller and control/diagnostic interface. it is ready to build dedicated mechatronics solutions connected remotely with a lin master. the chip receives positioning instructions through the bus and subsequently drives the motor coils to the desired position. the on ? chip position controller is configurable (otp or ram) for different motor types, positioning ranges and parameters for speed, acceleration and deceleration. the amis ? 30623 acts as a slave on the lin bus and the master can fetch specific status information like actual position, error flags, etc. from each individual slave node. an integrated sensor ? less step ? loss detection prevents the positioner from loosing steps and stops the motor when running into stall. this enables silent, yet accurate position calibrations during a referencing run and allows semi ? closed loop operation when approaching the mechanical end ? stops. the chip is implemented in i2t100 technology, enabling both high voltage analog circuitry and digital functionality on the same chip. the amis ? 30623 is fully compatible with the automotive voltage requirements. product features motordriver ? micro ? stepping t echnology ? sensorless step ? loss detection ? peak current up to 800 ma ? fixed frequency pwm current ? control ? automatic selection of fast and slow decay mode ? no external fly ? back diodes required ? compliant with 14 v automotive systems and industrial systems up to 24 v ? motion qualification mode (note 1) controller with ram and otp memory ? position controller ? configurable speeds and acceleration ? input to connect optional motion switch lin interface ? physical layer compliant to lin rev. 2.0. data ? link layer compatible with lin rev. 1.3 (note 2) ? field ? programmable node addresses ? dynamically allocated identifiers ? diagnostics and status information protection ? overcurrent protection ? undervoltage management ? open ? circuit detection ? high temperature warning and management ? low temperature flag ? lin bus short ? circuit protection to supply and ground ? lost lin safe operation power saving ? powerdown supply current < 100 a ? 5 v regulator with wake ? up on lin activity emi compatibility ? lin bus integrated slope control ? hv outputs with slope control patents ? us 7,271,993 ? us 7,288,956 ? this is a pb ? free device 1. not applicable for ?product versions amis30623c6238(r)g, amis30623c623b(r)g? 2. minor exceptions to the conformance of the data ? link layer to lin rev. 1.3. http://onsemi.com see detailed ordering and shipping information in the package dimensions section on p age 2 of this data sheet. ordering information soic ? 20 8 or 9 suffix case 751aq nqfp ? 32 a or b suffix case 560aa
amis ? 30623 http://onsemi.com 2 applications the amis ? 30623 is ideally suited for small positioning applications. ta rget markets include: automotive (headlamp alignment, hvac, idle control, cruise control), industrial equipment (lighting, fluid control, labeling, process control, xyz tables, robots...) and building automation (hvac, surveillance, satellite dish, renewable energy systems). suitable applications typically have multiple axes or require mechatronics solutions with the driver chip mounted directly on the motor. table 1. ordering information part no. peak current end market/version package* shipping ? amis30623c6239g 800 ma industrial high voltage version soic ? 20 (pb ? free) tube/tray amis30623c6239rg 800 ma soic ? 20 (pb ? free) tape & reel amis30623c623ag 800 ma nqfp ? 32 (7 x 7 mm) (pb ? free) tube/tray amis30623c623arg 800 ma nqfp ? 32 (7 x 7 mm) (pb ? free) tape & reel amis30623c6238g 800 ma automotive high temperature version soic ? 20 (pb ? free) tube/tray amis30623c6238rg 800 ma soic ? 20 (pb ? free) tape & reel amis30623c623bg 800 ma nqfp ? 32 (7 x 7 mm) (pb ? free) tube/tray amis30623c623brg 800 ma nqfp ? 32 (7 x 7 mm) (pb ? free) tape & reel *for additional information on our pb ? free strategy and soldering details, please download the on semiconductor soldering and mounting techniques reference manual, solderrm/d. ?for information on tape and reel specifications, including part orientation and tape sizes, please refer to our tape and reel packaging specification brochure, brd8011/d. quick reference data table 2. absolute maximum ratings parameter min max unit v bb , vhw2, vswi supply voltage, hardwired address and swi pins ? 0.3 +40 (note 3) v vlin bus input voltage ? 40 +40 v t j junction temperature range (note 4) ? 50 +175 c ts t storage temperature ? 55 +160 c vesd (note 5) hbm electrostatic discharge voltage on lin pin ? 4 +4 kv hbm electrostatic discharge voltage on other pins (note 6) ? 2 +2 kv mm electrostatic discharge voltage on other pins (note 7) ? 200 +200 v stresses exceeding maximum ratings may damage the device. maximum ratings are stress ratings only. functional operation above t he recommended operating conditions is not implied. extended exposure to stresses above the recommended operating conditions may af fect device reliability. table 3. operating ranges parameter min max unit v bb supply voltage +6.5 +29 v t j operating temperature range ? 40 +165 c 3. for limited time: v bb <0.5 s, swi and hw2 pins <1.0 s. 4. the circuit functionality is not guaranteed. 5. hbm according to aec ? q100: eia ? jesd22 ? a114 ? b (100 pf via 1.5 k ) and mm according to aec ? q100: eia ? jesd22 ? a115 ? a. 6. tested on amis30623c6238(r)g version. 7. tested on amis30623c623b(r)g version. amis ? 30623 http://onsemi.com 3 table of contents general description 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . product features 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . applications 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ordering information 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . quick reference data 2 . . . . . . . . . . . . . . . . . . . . . . . . . . maximum ratings 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . block diagram 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pin description 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . package thermal resistance 5 . . . . . . . . . . . . . . . . . . . . . dc parameters 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ac parameters 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . typical application 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . positioning parameters 10 . . . . . . . . . . . . . . . . . . . . . . . . structural description 13 . . . . . . . . . . . . . . . . . . . . . . . . . functions description 14 . . . . . . . . . . . . . . . . . . . . . . . . . position controller 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . main control and register 21 . . . . . . . . . . . . . . . . . . . . . . autarkic functionality in undervoltage condition 23 . . . otp register 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . priority encoder 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . motordriver 31 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lin controller 36 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lin lost behavior 41 . . . . . . . . . . . . . . . . . . . . . . . . . . . . lin application commands 44 . . . . . . . . . . . . . . . . . . . . application commands 45 . . . . . . . . . . . . . . . . . . . . . . . . package outlines 59 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bus interface oscillator vref temp sense voltage regulator tst lin vbb vdd gnd motxp motxn main control registers otp ? rom 4 mhz charge pump cpn cpp vcp motion detection position controller controller swi hw[2:0] motyp motyn pwm regulator y i ? sense pwm regulator x i ? sense decoder sinewave table dac?s amis ? 30623 figure 1. block diagram amis ? 30623 http://onsemi.com 4 1 2 3 5 4 6 7 8 24 23 22 20 21 19 18 17 9 10 11 12 13 14 15 16 32 31 30 29 28 27 26 25 xp vbb swi nc hw0 xp vbb vbb cpn cpp vcp yn vbb yn vbb vbb yp xn gnd gnd xn yp gnd gnd hw1 vdd gnd tst lin hw2 gnd nc amis ? 30623 17 18 19 20 1 2 3 4 hw0 gnd swi gnd hw1 motxp vbb vdd 16 15 14 13 12 11 5 6 7 8 9 10 gnd gnd motxn motyp motyn tst lin hw2 cpn cpp vbb vcp soic ? 20 figure 2. soic ? 20 and nqfp ? 32 pin ? out amis ? 30623 (top view) table 4. pin description pin name pin description soic ? 20 nqfp ? 32 hw0 bit 0 of lin ? add to be tied to gnd or v dd 1 8 hw1 bit 1 of lin ? add 2 9 vdd internal supply (needs external decoupling capacitor) 3 10 gnd ground, heat sink 4, 7, 14, 17 11, 14, 25, 26, 31, 32 tst test pin (to be tied to ground in normal operation) 5 12 lin lin ? bus connection 6 13 hw2 bit 2 lin ? add 8 15 cpn negative connection of pump ? capacitor (charge pump) 9 17 cpp positive connection of pump ? capacitor (charge pump) 10 18 vcp charge ? pump filter ? capacitor 11 19 v bb battery voltage supply 12,19 3, 4, 5, 20, 21, 22 motyn negative end of phase y coil 13 23, 24 motyp positive end of phase y coil 15 27, 28 motxn negative end of phase x coil 16 29, 30 motxp positive end of phase x coil 18 1, 2 swi switch input 20 6 nc not connected (to be tied to ground) 7, 16 amis ? 30623 http://onsemi.com 5 package thermal resistance the amis ? 30623 is available in soic ? 20 and optimized nqfp ? 32 packages. for cooling optimizations, the nqfp has an exposed thermal pad which has to be soldered to the pcb ground plane. the ground plane needs thermal vias to conduct the head to the bottom layer. figures 3 and 4 give examples for good power distribution solutions. for precise thermal cooling calculations the major thermal resistances of the devices are given. the thermal media to which the power of the devices has to be given are: ? static environmental air (via the case) ? pcb board copper area (via the device pins and exposed pad) the thermal resistances are presented in table 5: dc parameters. the major thermal resistances of the device are the rth from the junction to the ambient (rthja) and the overall rth from the junction to the leads (rthjp). the nqfp device is designed to provide superior thermal performance. using an exposed die pad on the bottom surface of the package is mainly contributing to this performance. in order to take full advantage of the exposed pad, it is most important that the pcb has features to conduct heat away from the package. a thermal grounded pad with thermal vias can achieve this. in the table below, one can find the values for the rthja and rthjp, simulated according to the jesd ? 51 norm: package rth junction ? to ? leads and exposed pad ? rthjp rth junction ? to ? leads rthjp rth junction ? to ? ambient rthja (1s0p) rth junction ? to ? ambient rthja (2s2p) soic ? 20 19 62 39 nqfp ? 32 0,95 60 30 the rthja for 2s2p is simulated conform to jesd ? 51 as follows: ? a 4 ? layer printed circuit board with inner power planes and outer (top and bottom) signal layers is used ? board thickness is 1.46 mm (fr4 pcb material) ? the 2 signal layers: 70 m thick copper with an area of 5500 mm 2 copper and 20% conductivity ? the 2 power internal planes: 36 m thick copper with an area of 5500 mm 2 copper and 90% conductivity the rthja for 1s0p is simulated conform to jesd ? 51 as follows: ? a 1 ? layer printed circuit board with only 1 layer ? board thickness is 1.46 mm (fr4 pcb material) ? the layer has a thickness of 70 m copper with an area of 5500 mm 2 copper and 20% conductivity ????????????? ????????????? ????????????? ????????????? ????????????? ????????????? ????????????? ?? ?? ?? ???????????? ???????????? ???????????? ???????????? ???????????? ???????????? ???????????? figure 3. example of soic ? 20 pcb ground plane layout (preferred layout at top and bottom) figure 4. example of nqfp ? 32 pcb ground plane layout (preferred layout at top and bottom) nqfp ? 32 soic ? 20 amis ? 30623 http://onsemi.com 6 dc parameters the dc parameters are guaranteed overtemperature and v bb in the operating range, unless otherwise specified. convention: currents flowing into the circuit are defined as positive. table 5. dc parameters symbol pin(s) parameter test conditions min typ max unit motordriver i msmax,peak motxp motxn motyp motyn max current through motor coil in normal operation v bb = 14 v 800 ma i msmax,rms max rms current through coil in normal operation v bb = 14 v 570 ma i msabs absolute error on coil current (note 8) v bb = 14 v ? 10 10 % i msrel matching of x & y coil currents v bb = 14 v ? 7 0 7 % r ds(on) on resistance for each motor pin at i msmax (note 9) v bb = 12 v, t j = 50 c 0.50 1 v bb = 8 v, t j = 50 c 0.55 1 v bb = 12 v, t j = 150 c 0.70 1 v bb = 8 v, t j = 150 c 0.85 1 i msl pulldown current hiz mode, v bb = 7.8 v 2 ma lin transmitter i bus_off lin dominant state, driver off v bus = 0 v, v bb = 8 v & 18 v ? 1 ma i bus_off recessive state, driver off v bus = v bat , v bb = 8 v & 18 v 20 a i bus_lim current limitation v bb = 8 v & 18 v 50 75 130 ma r slave pullup resistance v bb = 8 v & 18 v 20 30 47 k lin receiver v bus_dom lin receiver dominant state v bb = 8 v & 18 v 0 0.4 * v bb v v bus_rec receiver recessive state v bb = 8 v & 18 v 0.6 * v bb v bb v v bus_hys receiver hysteresis v bb = 8 v & 18 v 0.05 * v bb 0.175 * v bb v thermal warning & shutdown t tw thermal warning (notes 10 and 11) 138 145 152 c t tsd thermal shutdown (note 12) t tw + 10 c t low low temperature warning (note 12) t tw ? 155 c supply and voltage regulator v bbotp v bb supply voltage for otp zapping (note 13) 9.0 10.0 v uv 1 stop voltage high threshold 7.8 8.4 8.9 v uv 2 stop voltage low threshold 7.1 7.5 8.0 v i bat total current consumption unloaded outputs v bb = 29 v 3.50 10.0 ma i bat_s sleep mode current consumption v bb = 8 v & 18 v 50 100 a 8. tested in production for 800 ma, 400 ma, 200 ma and 100 ma current settings for both x and y coil. 9. not measured in production. guaranteed by design. 10. parameter guaranteed by trimming relevant otp?s in production test at 143 c ( 5 c) and v bb = 14 v. 11. no more than 100 cumulated hours in life time above tw. 12. thermal shutdown and low temperature warning are derived from thermal warning. guaranteed by design. 13. a buffer capacitor of minimum 100 f is needed between v bb and gnd. short connections to the power supply are recommended. amis ? 30623 http://onsemi.com 7 table 5. dc parameters symbol pin(s) parameter test conditions min typ max unit supply and voltage regulator v dd v dd regulated internal supply (note 14) 8 v < v bb < 29 v 4.75 5 5.50 v v ddreset digital supply reset level @ power down (note 15) 4.5 v i ddlim current limitation pin shorted to ground v bb = 14 v 45 ma switch input and hardwire address input rt_ off swi hw2 switch open resistance (note 16) 10 k rt_ on switch on resistance (note 16) switch to gnd or v bb 2 k v bb_sw v bb range for guaranteed operation of swi and hw2 6 29 v i lim_sw current limitation short to gnd or v bat v bb = 29 v 20 30 45 ma hardwired address inputs and test pin v ihigh hw0 hw1 tst input level high v bb = 14 v 0.7 * v dd v v ilow input level low v bb = 14 v 0.3 * v dd v hw hyst hysteresis v bb = 14 v 0.075 * v dd v charge pump v cp vcp output voltage 6 v v bb 14 v 2 * v bb ? 2.5 v 14 v v bb 30 v v bb + 10 v bb + 15 v c buffer external buffer capacitor 220 470 nf c pump cpp cpn external pump capacitor 220 470 nf motion qualification mode output (note 17) v out swi output voltage swing testbemf lin command 0 ? 4,85 v r out output impedance service mode lin command 2 k av gain = v swi / v bemf service mode lin command 0.50 package thermal resistance values rth ja so thermal resistance junction to ambient (2s2p) simulated conform jedec jesd51 39 k/w rth jp so thermal resistance junction to leads 19 k/w rth ja nq thermal resistance junction to ambient (2s2p) 30 k/w rth jp nq thermal resistance junction to leads and exposed pad 0.95 k/w 14. pin v dd must not be used for any external supply 15. the ram content will not be altered above this voltage. 16. external resistance value seen from pin swi or hw2, including 1 k series resistor. for the switch open, the maximum allowed leakage current is represented by a minimum resistance seen from the pin. 17. not applicable for ?product versions amis30623c6238(r)g, amis30623c623b(r)g? amis ? 30623 http://onsemi.com 8 ac parameters the ac parameters are guaranteed for temperature and v bb in the operating range unless otherwise specified. the lin transmitter and receiver physical layer parameters are compliant to lin rev. 2.0 & 2.1. table 6. ac parameters symbol pin(s) parameter test conditions min typ max unit powerup t pu power ? up time guaranteed by design 10 ms internal oscillator f osc frequency of internal oscillator v bb = 14 v 3.6 4.0 4.4 mhz lin transmitter characteristics according to lin v2.0 & v2.1 d1 lin duty cycle 1 = t bus_rec(min) / (2 x t bit ); see figure 5 threc(max) = 0.744 x v bb thdom(max) = 0.581 x v bb ; v bb = 7.0 v...18 v; t bit = 50 s 0.396 d2 duty cycle 2 = t bus_rec(max) / (2 x t bit ); see figure 5 threc(min) = 0.284 x v bb thdom(min) = 0.422 x v bb ; v bb = 7.6 v...18 v; t bit = 50 s 0.581 lin receiver characteristics according to lin v2.0 & v2.1 trx_pdr lin propagation delay bus dominant to rxd = low v bb = 7.0 v & 18 v; see figure 5 6 s trx_pdf propagation delay bus recessive to rxd = high v bb = 7.0 v & 18 v; see figure 5 6 s trx_sym symmetry of receiver propagation delay trx_pdr ? trx_pdf ? 2 +2 s switch input and hardwire address input t sw swi hw2 scan pulse period (note 18) v bb = 14 v 1024 s t sw_on scan pulse duration (note 18) v bb = 14 v 128 s motordriver f pwm motxx pwm frequency (note 18) pwmfreq = 0 (note 19) 20.6 22.8 25.0 khz pwmfreq = 1 (note 19) 41.2 45.6 50.0 khz f jit_depth pwm jitter modulation depth pwmjen = 1 (note 19) 10 % t brise turn ? on transient time between 10% and 90% 140 ns t bfall turn ? off transient time 130 ns t stab run current stabilization time (note 18) 29 32 35 ms charge pump f cp cpn cpp charge pump frequency (note 18) v bb = 14 v 250 khz 18. derived from the internal oscillator 19. see setmotorparam and pwm regulator amis ? 30623 http://onsemi.com 9 figure 5. timing diagram for ac characteristics according to lin 2.0 & 2.1 lin t 50% 50% thresholds receiver 1 thresholds receiver 2 rxd txd (receiver 2) t t th rec(max) th dom(max) th rec(min) th dom(min) t bit t bit t rx_pdf t rx_pdr t bus_rec(min) t bus_dom(max) t bus_rec(max) t bus_dom(min) typical application amis ? 30623 gnd 2 motxp lin 100 nf lin bus 2,7 nf motxn motyp motyn 11 vdd vbb 12 vcp swi cpp cpn 9 8 hw0 hw1 10 hw2 18 m 16 15 13 20 tst 3 vbb 19 1 6 54 71417 100 nf 220 nf 2,7 nf 1 k 1 k vdr 27 v figure 6. typical application diagram for so device 1 f c 9 v bat c 8 c 1 c 10 connect to v bat or gnd c 7 100 f c 2 connect to v bat or gnd c 4 100 nf c 3 c 5 c 6 220 nf notes: all resistors are 5%, 1/4 w c 1 , c 2 minimum value is 2.7 nf, maximum value is 10 nf depending on the application, the esr value and working voltage of c 7 must be carefully chosen c 3 and c 4 must be close to pins v bb and gnd c 5 and c 6 must be as close as possible to pins cpn, cpp, vcp, and v bb to reduce emc radiation c 9 must be a ceramic capacitor to assure low esr c 10 is placed for emc reasons; value depends on emc requirements of the application amis ? 30623 http://onsemi.com 10 positioning parameters stepping modes one of four possible stepping modes can be programmed: ? half ? stepping ? 1/4 micro ? stepping ? 1/8 micro ? stepping ? 1/16 micro ? stepping maximum velocity for each stepping mode, the maximum velocity vmax can be programmed to 16 possible values given in the table below. the accuracy of vmax is derived from the internal oscillator. under special circumstances it is possible to change the vmax parameter while a motion is ongoing. all 16 entries for the vmax parameter are divided into four groups. when changing vmax during a motion the application must take care that the new vmax parameter stays within the same group. table 7. maximum velocity selection table vmax index vmax (full step/s) group stepping mode hex dec half ? stepping (half ? step/s) 1/4 th micro ? stepping (micro ? step/s) 1/8 th micro ? stepping (micro ? step/s) 1/16 th micro ? stepping (micro ? step/s) 0 0 99 a 197 395 790 1579 1 1 136 b 273 546 1091 2182 2 2 167 334 668 1335 2670 3 3 197 395 790 1579 3159 4 4 213 425 851 1701 3403 5 5 228 456 912 1823 3647 6 6 243 486 973 1945 3891 7 7 273 c 546 1091 2182 4364 8 8 303 607 1213 2426 4852 9 9 334 668 1335 2670 5341 a 10 364 729 1457 2914 5829 b 11 395 790 1579 3159 6317 c 12 456 912 1823 3647 7294 d 13 546 d 1091 2182 4364 8728 e 14 729 1457 2914 5829 11658 f 15 973 1945 3891 7782 15564 amis ? 30623 http://onsemi.com 11 minimum velocity once the maximum velocity is chosen, 16 possible values can be programmed for the minimum velocity vmin. the table below provides the obtainable values in full ? step/s. the accuracy of vmin is derived from the internal oscillator. table 8. obtainable values in full ? step/s for the minimum velocity vmin index vmax factor vmax (full ? step/s) a b c d hex dec 99 136 167 197 213 228 243 273 303 334 364 395 456 546 729 973 0 0 1 99 136 167 197 213 228 243 273 303 334 364 395 456 546 729 973 1 1 1/32 3 4 5 6 6 7 7 8 8 10 10 11 13 15 19 27 2 2 2/32 6 8 10 11 12 13 14 15 17 19 21 23 27 31 42 57 3 3 3/32 9 12 15 18 19 21 22 25 27 31 32 36 42 50 65 88 4 4 4/32 12 16 20 24 26 28 30 32 36 40 44 48 55 65 88 118 5 5 5/32 15 21 26 31 32 35 37 42 46 51 55 61 71 84 111 149 6 6 6/32 18 25 31 36 39 42 45 50 55 61 67 72 84 99 134 179 7 7 7/32 21 30 36 43 46 50 52 59 65 72 78 86 99 118 156 210 8 8 8/32 24 33 41 49 52 56 60 67 74 82 90 97 113 134 179 240 9 9 9/32 28 38 47 55 59 64 68 76 84 93 101 111 128 153 202 271 a 10 10/32 31 42 51 61 66 71 75 84 93 103 113 122 141 168 225 301 b 11 11/32 34 47 57 68 72 78 83 93 103 114 124 135 156 187 248 332 c 12 12/32 37 51 62 73 79 85 91 101 113 124 135 147 170 202 271 362 d 13 13/32 40 55 68 80 86 93 98 111 122 135 147 160 185 221 294 393 e 14 14/32 43 59 72 86 93 99 106 118 132 145 158 172 198 237 317 423 f 15 15/32 46 64 78 93 99 107 113 128 141 156 170 185 214 256 340 454 notes: the vmax factor is an approximation. in case of motion without acceleration ( accshape = 1 ) the length of the steps = 1/ vmin. in case of accelerated motion ( accshape = 0) the length of the first step is shorter than 1/ vmin depending of vmin, vmax and acc . amis ? 30623 http://onsemi.com 12 acceleration and deceleration sixteen possible values can be programmed for acc (acceleration and deceleration between vmin and vmax). the table below provides the obtainable values in full ? step/s 2 . one observes restrictions for some combinations of acceleration index and maximum speed (gray cells). the accuracy of acc is derived from the internal oscillator. table 9. acceleration and deceleration selection table vmax (fs/s) 99 136 167 197 213 228 243 273 303 334 364 395 456 546 729 973 acc index acceleration (full ? step/s 2 ) hex dec 0 0 49 106 473 1 1 218 735 2 2 1004 3 3 3609 4 4 6228 5 5 8848 6 6 11409 7 7 13970 8 8 16531 9 9 14785 19092 a 10 21886 b 11 24447 c 12 27008 d 13 29570 e 14 29570 34925 f 15 40047 the formula to compute the number of equivalent full ? steps during acceleration phase is: nstep vmax 2 vmin 2 2 acc positioning the position programmed in commands setposition and setpositionshort is given as a number of (micro ? )steps. according to the chosen stepping mode, the position words must be aligned as described in the table below. when using command setpositionshort or gotosecureposition , data is automatically aligned. table 10. position word alignment stepping mode position word: pos[15:0] shift 1/16 th s b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 lsb no shift 1/8 th s b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 lsb 0 1 ? bit left ? 2 1/4 th s b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 lsb 0 0 2 ? bit left ? 4 half ? stepping s b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 lsb 0 0 0 3 ? bit left ? 8 positionshort s s s b9 b8 b7 b6 b5 b4 b3 b2 b1 lsb 0 0 0 no shift secureposition s b9 b8 b7 b6 b5 b4 b3 b2 b1 lsb 0 0 0 0 0 no shift notes: lsb: least significant bit s: sign bit amis ? 30623 http://onsemi.com 13 position ranges a position is coded by using the binary two?s complement format. according to the positioning commands used and to the chosen stepping mode, the position range will be as shown in the following table. table 11. position range command stepping mode position range full range excursion number of bits setposition half ? stepping ? 4096 to +4095 8192 half ? steps 13 1/4 th micro ? stepping ? 8192 to +8191 16384 micro ? steps 14 1/8 th micro ? stepping ? 16384 to +16383 32768 micro ? steps 15 1/16 th micro ? stepping ? 32768 to +32767 65536 micro ? steps 16 setpositionshort half ? stepping ? 1024 to +1023 2048 half ? steps 11 when using the command setposition , although coded on 16 bits, the position word will have to be shifted to the left by a certain number of bits, according to the stepping mode. secure position a secure position can be programmed. it is coded in 11 ? bits, thus having a lower resolution than normal positions, as shown in the following table. see also command gotosecureposition and lin lost behavior . table 12. secure position stepping mode secure position resolution half ? stepping 4 half ? steps 1/4 th micro ? stepping 8 micro ? steps (1/4 th ) 1/8 th micro ? stepping 16 micro ? steps (1/8 th ) 1/16 th micro ? stepping 32 micro ? steps (1/16 th ) important notes: the secure position is disabled in case the programmed value is the reserved code ?10000000000? (0x400 or most negative position). the resolution of the secure position is limited to 9 bit at start ? up. the otp register is copied in ram as illustrated below. the ram bits secpos1 and secpos0 are set to 0. secpos10 secpos9 secpos8 secpos2 secpos1 secpos0 secpos10 secpos9 secpos8 secpos2 failsafe sleepen ram otp shaft a shaft bit, which can be programmed in otp or with command setmotorparam , defines whether a positive motion is a clockwise (cw) or counter ? clockwise rotation (ccw) (an outer or an inner motion for linear actuators): ? shaft = 0 ? motxp is used as positive pin of the x coil, while motxn is the negative one. ? shaft = 1 ? opposite situation exception: in runvelocity mode, the shaft bit has no function. in this mode the rotational direction is always cw or ccw, which is only determined by the motor wiring. structural description see also the block diagram in figure 1. stepper motordriver the motordriver receives the control signals from the control logic. the main features are: ? two h ? bridges, designed to drive a stepper motor with two separated coils. each coil (x and y) is driven by one h ? bridge, and the driver controls the currents flowing through the coils. the rotational position of the rotor, in unloaded condition, is defined by the ratio of current flowing in x and y. the torque of the stepper motor when unloaded is controlled by the magnitude of the currents in x and y. ? the control block for the h ? bridges, including the pwm control, the synchronous rectification and the internal current sensing circuitry. amis ? 30623 http://onsemi.com 14 ? the charge pump to allow driving of the h ? bridges? high side transistors. ? two pre ? scale 4 ? bit dac?s to set the maximum magnitude of the current through x and y. ? two dac?s to set the correct current ratio through x and y. battery voltage monitoring is also performed by this block, which provides the required information to the control logic part. the same applies for detection and reporting of an electrical problem that could occur on the coils or the charge pump. control logic (position controller and main control) the control logic block stores the information provided by the lin interface (in a ram or an otp memory) and digitally controls the positioning of the stepper motor in terms of speed and acceleration, by feeding the right signals to the motordriver state machine. it will take into account the successive positioning commands to properly initiate or stop the stepper motor in order to reach the set point in a minimum time. it also receives feedback from the motordriver part in order to manage possible problems and decide on internal actions and reporting to the lin interface. motion detection motion detection is based on the back ? emf generated internally in the running motor. when the motor is blocked, e.g. when it hits the end position, the velocity, and as a result also the generated back ? emf, is disturbed. the amis ? 30623 senses the back ? emf, calculates a moving average and compares the value with two independent threshold levels. if the back ? emf disturbance is bigger than the set threshold, the running motor is stopped. lin interface the lin interface implements the physical layer and the mac and llc layers according to the osi reference model. it provides and gets information to and from the control logic block, in order to drive the stepper motor, to configure the way this motor must be driven, or to get information such as actual position or diagnosis (temperature, battery voltage, electrical status...) and pass it to the lin master node. miscellaneous the amis ? 30623 also contains the following: ? an internal oscillator, needed for the lin protocol handler as well as the control logic and the pwm control of the motordriver. ? an internal trimmed voltage source for precise referencing. ? a protection block featuring a thermal shutdown and a power ? on ? reset circuit. ? a 5 v regulator (from the battery supply) to supply the internal logic circuitry. functions description this chapter describes the following functional blocks in more detail: ? position controller ? main control and register, otp memory + rom ? motordriver the motion detection and lin controller are discussed in separate chapters. position controller positioning and motion control a positioning command will produce a motion as illustrated in figure 7. a motion starts with an acceleration phase from minimum velocity (vmin) to maximum velocity (vmax) and ends with a symmetrical deceleration. this is defined by the control logic according to the position required by the application and the parameters programmed by the application during the configuration phase. the current in the coils is also programmable. velocity vmax vmin acceleration range deceleration range pstart pstop p=0 position zero speed hold current pmin pmax zero speed hold current figure 7. positioning and motion control amis ? 30623 http://onsemi.com 15 table 13. position related parameters parameter reference pmax ? pmin see positioning zero speed hold current see ihold maximum current see irun acceleration and deceleration see acceleration and deceleration vmin see minimum velocity vmax see maximum velocity different positioning examples are shown in the table below. table 14. positioning examples short motion. velocity time new positioning command in same dir- ection, shorter or longer, while a motion is running at maximum velocity. velocity time new positioning command in same dir- ection while in deceleration phase (note 20) note: there is no wait time between the deceleration phase and the new accel- eration phase. velocity time new positioning command in reverse direction while motion is running at max- imum velocity. velocity time new positioning command in reverse direction while in deceleration phase. velocity time new velocity programming while motion is running. velocity time 20. reaching the end position is always guaranteed, however velocity rounding errors might occur after consecutive accelerations during a deceleration phase. the velocity rounding error will be removed at vmin (e.g. at end of acceleration or when accshape=1). amis ? 30623 http://onsemi.com 16 dual positioning a setdualposition command allows the user to perform a positioning using two different velocities. the first motion is done with the specified vmin and vmax velocities in the setdualposition command, with the acceleration (deceleration) parameter already in ram, to a position pos1[15:0] also specified in setdualposition . then a second relative motion to a physical position pos1[15:0] + pos2[15:0] is done at the specified vmin velocity in the setdualposition command (no acceleration). once the second motion is achieved, the actpos register is reset to zero, whereas tagpos register is not changed. when the secure position is enabled, after the dual positioning, the secure positioning is executed. the figure below gives a detailed overview of the dual positioning function. after the dual positioning is executed an internal flag is set to indicate the amis ? 30623 is referenced. vmax tstab vmin tstab assume: first position = 300 second position = 5 secure position = 50 pos: xx actpos: 300 actpos: 0 resetpos 01 actpos: 0 4 resetpos during one vmin time the actpos is 0 secure (if enabled) positioning second first movement profile: motion status: position: 00 00 0 xx 5 steps when stall detection is enabled, this movement is stopped when a stall is detected. 0 0 1 0 0 50 a new motion will start only after tstab figure 8. dual positioning actpos: 50 movement remark: this operation cannot be interrupted or influenced by any further command unless the occurrence of the conditions driving to a motor shutdown or by a hardstop command. sending a setdualposition command while a motion is already ongoing is not recommended. 21. the priority encoder is describing the management of states and commands. 22. a dualposition sequence starts by setting tagpos buffer register to secpos value, provided secure position is enabled otherw ise tagpos is reset to zero. if a setposition(short) command is issued during a dualposition sequence, it will be kept in the position buf fer memory and executed afterwards. this applies also for the commands sleep, setposparam and gotosecureposition. 23. commands such as getactualpos or getstatus will be executed while a dual positioning is running. this applies also for a dyn amic id assignment lin frame. 24. the pos1, pos2, vmax and vmin values programmed in a setdualposition command apply only for this sequence. all other motion parameters are used from the ram registers (programmed for instance by a former setmotorparam command). after the dualposition motion is completed, the former vmin and vmax become active again. 25. commands resetposition, setdualposition, and softstop will be ignored while a dualposition sequence is ongoing, and will not be executed afterwards. 26. recommendation: a setmotorparam command should not be sent during a setdualposition sequence: all the motion parameters defined in the command, except vmin and vmax, become active immediately. position periodicity depending on the stepping mode the position can range from ? 4096 to +4095 in half ? step to ? 32768 to +32767 in 1/16th micro ? stepping mode. one can project all these positions lying on a circle. when executing the command setposition , the position controller will set the movement direction in such a way that the traveled distance is minimal. the figure below illustrates that the moving direction going from actpos = +30000 to tagpos = ?30000 is clockwise. if a counter clockwise motion is required in this example, several consecutive setposition commands can be used. one could also use for lar ger movements the command runvelocity . amis ? 30623 http://onsemi.com 17 0 actpos = +30000 tagpos = ? 30000 ? 10000 ? 20000 +10000 +20000 motion direction figure 9. motion direction is function of difference between actpos and tagpos hardwired address hw2 in the drawing below, a simplified schematic diagram is shown of the hw2 comparator circuit. the hw2 pin is sensed via 2 switches. the drivehs and drivels control lines are alternatively closing the top and bottom switch connecting hw2 pin with a current to resistor converter. closing s top (drivehs = 1) will sense a current to gnd. in that case the top i r converter output is low, via the closed passing switch s pass_t this signal is fed to the ?r? comparator which output hw2_cmp is high. closing bottom switch s bot (drivels = 1) will sense a current to v bat . the corresponding i r converter output is low and via s pass_b fed to the comparator. the output hw2_cmp will be high. 12 3 1 = r2gnd comp i/r logic high low float drivehs drivels hw2_cmp hw2 state debouncer debouncer 64 ms 1 k figure 10. simplified schematic diagram of the hw2 comparator s bot s top i/r r th 32 s s pass_b ??r? ? comp s pass_t 2 = r2vbat 3 = open 3 cases can be distinguished (see also figure 10 above): ? hw2 is connected to ground: r2gnd or drawing 1 ? hw2 is connected to vbat: r2vbat or drawing 2 ? hw2 is floating: open or drawing 3 amis ? 30623 http://onsemi.com 18 table 15. state diagram of the hw2 comparator previous state drivels drivehs hw2_cmp new state condition drawing float 1 0 0 float r2gnd or open 1 or 3 float 1 0 1 high r2vbat 2 float 0 1 0 float r2vbat or open 2 or 3 float 0 1 1 low r2gnd 1 low 1 0 0 low r2gnd or open 1 or 3 low 1 0 1 high r2vbat 2 low 0 1 0 float r2vbat or open 2 or 3 low 0 1 1 low r2gnd 1 high 1 0 0 float r2gnd or open 1 or 3 high 1 0 1 high r2vbat 2 high 0 1 0 high r2vbat or open 2 or 3 high 0 1 1 low r2gnd 1 the logic is controlling the correct sequence in closing the switches and in interpreting the 32 s debounced hw2_cmp output accordingly. the output of this small state ? machine is corresponding to: ? high or address = 1 ? low or address = 0 ? floating as illustrated in the table above (table 15), the state is depending on the previous state, the condition of the 2 switch controls (drivels and drivehs) and the output of hw2_cmp. figure 11 shows an example of a practical case where a connection to vbat is interrupted. amis ? 30623 http://onsemi.com 19 t drivels t t drivehs hw2_cmp state t r2 vbat open high r2 vbat r2 gnd t float figure 11. timing diagram showing the change in states for hw2 comparator float high r th condition ?r? ? comp tsw = 1024 s tsw_on = 128 s t low r2vbat a resistor is connected between vbat and hw2. every 1024 s s bot is closed and a current is sensed. the output of the i ? r converter is low and the hw2_cmp output is high. assuming the previous state was floating, the internal logic will interpret this as a change of state and the new state will be high (see also table 15). the next time s bot is closed the same conditions are observed. the previous state was high so based on table 15 the new state remains unchanged. this high state will be interpreted as hw2 address = 1. open in case the hw2 connection is lost (broken wire, bad contact in connector) the next time s bot is closed, this will be sensed. there will be no current, the output of the corresponding i ? r converter is high and the hw2_cmp will be low. the previous state was high. based in table 15 one can see that the state changes to float. this will trigger a motion to secure position after a debounce time of 64 ms, which prevents false triggering in case of micro ? interruptions of the power supply. r2gnd if a resistor is connected between hw2 and the gnd, a current is sensed every 1024 s when s top is closed. the output of the top i ? r converter is low and as a result the hw2_cmp output switches to high. again based on the stated diagram in table 15 one can see that the state will change to low. this low state will be interpreted as hw2 address = 0. external switch swi as illustrated in figure 12 the swi comparator is almost identical to hw2. the major difference is in the limited number of states. only open or closed is recognised leading to respectively esw = 0 and esw = 1. amis ? 30623 http://onsemi.com 20 comp i/r logic closed open drivehs drivels swi_cmp swi 12 3 1 = r2gnd 1 k figure 12. simplified schematic diagram of the swi comparator 2 = r2vbat 3 = open s bot s top 32 s debouncer r th i/r state s pass_b s pass_t ??r? ? comp as illustrated in the drawing above, a change in state is always synchronised with drivehs or drivels. the same synchronisation is valid for updating the internal position register. this means that after every current pulse (or closing of s top or s bot ) the state of the position switch together with the corresponding position is memorised. the getactualpos command reads back the amis ? 30623 http://onsemi.com 21 drivehs t t t drivels swi_cmp esw t t 0111 actpos t figure 13. simplified timing diagram showing the change in states for swi comparator actpos actpos + 1 actpos + 2 actpos + 3 r th ?r? ? comp 640 s 120 s tsw = 1024 s tsw_on = 128 s main control and register, otp memory + rom power ? up phase power ? up phase of the amis ? 30623 will not exceed 10 ms. after this phase, the amis ? 30623 is in standby mode, ready to receive lin messages and execute the associated commands. after power ? up, the registers and flags are in the reset state, while some of them are being loaded with the otp memory content (see table 19: ram registers). reset after power ? up, or after a reset occurrence (e.g. a micro ? cut on pin v bb has made v dd to go below vddreset level), the h ? bridges will be in high ? impedance mode, and the registers and flags will be in a predetermined position. this is documented in table 19: ram registers and table 20: flags table. soft ? stop a soft ? stop is an immediate interruption of a motion, but with a deceleration phase. at the end of this action, the register amis ? 30623 http://onsemi.com 22 the circuit will return to normal mode if a valid lin frame is received (this valid frame can be addressed to another slave). thermal shutdown mode when thermal shutdown occurs, the circuit performs a amis ? 30623 http://onsemi.com 23 t warning level t shutdown level t t getstatus or getfullstatus t > ttsd, motor stops and shutdown getstatus or getfullstatus figure 15. illustration of thermal management situation t amis ? 30623 http://onsemi.com 24 otp register otp memory structure the table below shows how the parameters to be stored in the otp memory are located. table 17. otp memory structure address bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0x00 osc3 osc2 osc1 osc0 iref3 iref2 iref1 iref0 0x01 enablelin tsd2 tsd1 tsd0 bg3 bg2 bg1 bg0 0x02 absthr3 absthr2 absthr1 absthr0 pa3 pa2 pa1 pa0 0x03 irun3 irun2 irun1 irun0 ihold3 ihold2 ihold1 ihold0 0x04 vmax3 vmax2 vmax1 vmax0 vmin3 vmin2 vmin1 vmin0 0x05 secpos10 secpos9 secpos8 shaft acc3 acc2 acc1 acc0 0x06 secpos7 secpos6 secpos5 secpos4 secpos3 secpos2 failsafe sleepen 0x07 delthr3 delthr2 delthr1 delthr0 stepmode1 stepmode0 lockbt lockbg parameters stored at address 0x00 and 0x01 and bit amis ? 30623 http://onsemi.com 25 delthr[3:0] relative threshold used for the motion detection index delthr delthr level (v) (*) 0 0 0 0 0 disable 1 0 0 0 1 0.25 2 0 0 1 0 0.50 3 0 0 1 1 0.75 4 0 1 0 0 1.00 5 0 1 0 1 1.25 6 0 1 1 0 1.50 7 0 1 1 1 1.75 8 1 0 0 0 2.00 9 1 0 0 1 2.25 a 1 0 1 0 2.50 b 1 0 1 1 2.75 c 1 1 0 0 3.00 d 1 1 0 1 3.25 e 1 1 1 0 3.50 f 1 1 1 1 3.75 (*) not tested in production. values are approximations. irun[3:0] current amplitude value to be fed to each coil of the stepper ? motor. the table below provides the 16 possible values for amis ? 30623 http://onsemi.com 26 note: the secure position is coded on 11 bits only, providing actually the most significant bits of the position, the non coded least significant bits being set to ?0?. the secure position in otp has only 9 bits. the two least significant bits are loaded as ?0? to ram when copied from otp. vmax[3:0] maximum velocity index vmax vmax(full step/s) group 0 0 0 0 0 99 a 1 0 0 0 1 136 b 2 0 0 1 0 167 3 0 0 1 1 197 4 0 1 0 0 213 5 0 1 0 1 228 6 0 1 1 0 243 7 0 1 1 1 273 c 8 1 0 0 0 303 9 1 0 0 1 334 a 1 0 1 0 364 b 1 0 1 1 395 c 1 1 0 0 456 d 1 1 0 1 546 d e 1 1 1 0 729 f 1 1 1 1 973 vmin[3:0] minimum velocity. index vmin vmax factor 0 0 0 0 0 1 1 0 0 0 1 1/32 2 0 0 1 0 2/32 3 0 0 1 1 3/32 4 0 1 0 0 4/32 5 0 1 0 1 5/32 6 0 1 1 0 6/32 7 0 1 1 1 7/32 8 1 0 0 0 8/32 9 1 0 0 1 9/32 a 1 0 1 0 10/32 b 1 0 1 1 11/32 c 1 1 0 0 12/32 d 1 1 0 1 13/32 e 1 1 1 0 14/32 f 1 1 1 1 15/32 acc[3:0] acceleration and deceleration between vmax and vmin. index acc acceleration (full ? step/s 2 ) 0 0 0 0 0 49 (*) 1 0 0 0 1 218 (*) 2 0 0 1 0 1004 . 3 0 0 1 1 3609 . 4 0 1 0 0 6228 . 5 0 1 0 1 8848 . 6 0 1 1 0 11409 . 7 0 1 1 1 13970 . 8 1 0 0 0 16531 . 9 1 0 0 1 19092 (*) a 1 0 1 0 21886 (*) b 1 0 1 1 24447 (*) c 1 1 0 0 27008 (*) d 1 1 0 1 29570 (*) e 1 1 1 0 34925 (*) f 1 1 1 1 40047 (*) (*) restriction on speed sleepen if amis ? 30623 http://onsemi.com 27 table 19. ram registers register mnemonic length (bit) related commands comment reset state actual position actpos 16 getactualpos getfullstatus gotosecurepos resetposition 16 ? bit signed last programmed position pos/tagpos 16/11 getfullstatus gotosecurepos resetposition setposition setpositionshort setposparam 16 ? bit signed or 11 ? bit signed for half stepping (see positioning ) acceleration shape accshape 1 getfullstatus setmotorparam ?0? ? normal acceleration from vmin to vmax ?1? ? motion at vmin without acceleration ?0? coil peak current irun 4 getfullstatus setmotorparam operating current see look ? up table irun from otp memory coil hold current ihold 4 getfullstatus setmotorparam standstill current see look ? up table ihold minimum velocity vmin 4 getfullstatus setmotorparam setposparam see section minimum velocity see look ? up table vmin maximum velocity vmax 4 getfullstatus setmotorparam setposparam see section maximum velocity see look ? up table vmax shaft shaft 1 getfullstatus setmotorparam direction of movement acceleration/ deceleration acc 4 getfullstatus setmotorparam setposparam see section acceleration see look ? up table acc secure position secpos 11 getfullstatus setmotorparam target position when lin connection fails; 11 msb?s of 16 ? bit position (lsb?s fixed to ?0?) stepping mode stepmode 2 getfullstatus setstallparam see section stepping modes see look ? up table stepmode stall detection absolute threshold absthr 4 getfullstatus setstallparam setposparam stall detection delta threshold delthr 4 getfullstatus setstallparam sleep enable sleepen 1 setotpparam enables entering sleep mode after lin lost. see also lin lost behavior fail safe failsafe 1 setotpparam triggers autonomous motion after lin lost at por. see also lin lost behavior stall detection delay fs2stallen 3 getfullstatus setstallparam delays the stall detection after acceleration ?000? stall detection sampling minsamples 3 getfullstatus setstallparam duration of the zero current step in number of pwm cycles. ?000? pwm jitter pwmjen 1 getfullstatus setstallparam ?1? means jitter is added ?0? 100% duty cycle stall enable dc100sten 1 getfullstatus setstallparam ?1? means stall detection is enabled in case pwm regulator runs at = 100% ?0? pwm frequency pwmfreq 1 getfullstatus setmotorparam ?0? means ~ 22 khz, ?1? means ~ 44 khz ?0? amis ? 30623 http://onsemi.com 28 table 20. flags table flag mnemonic length (bit) related commands comment reset state charge pump failure cpfail 1 getfullstatus ?0? = charge pump ok ?1? = charge pump failure resets only after getfullstatus ?0? electrical defect eldef 1 getactualpos getstatus getfullstatus amis ? 30623 http://onsemi.com 29 priority encoder the table below describes the simplified state management performed by the main control block. table 21. priority encoder state standby stopped gotopos dualposition softstop hardstop shutdown sleep hardunder shutunder command motor stopped, ihold in coils motor motion ongoing no influence on ram and tagpos motor decelerating motor forced to stop motor stopped, h ? bridges in hi ? z no power (note 27) getactualpos lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response getotpparam lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response lin in-frame response getfullstatus or getstatus [ attempt to clear amis ? 30623 http://onsemi.com 30 27. leaving amis ? 30623 http://onsemi.com 31 motordriver current waveforms in the coils figure 17 below illustrates the current fed to the motor coils by the motordriver in half ? step mode. t coil x coil y ix iy figure 17. current waveforms in motor coils x and y in halfstep mode whereas figure 18 below shows the current fed to the coils in 1/16 th micro stepping (1 electrical period). t coil x coil y ix iy figure 18. current waveforms in motor coils x and y in 1/16 th micro ? step mode pwm regulation in order to force a given current (determined by amis ? 30623 http://onsemi.com 32 motor starting phase at motion start, the currents in the coils are directly switched from amis ? 30623 http://onsemi.com 33 this can be illustrated in the following sequence given as an application example. the master can check whether there is a problem or not and decide which application strategy to adopt. table 25. example of possible sequence used to detect and determine cause of motor shutdown tj ts d o r v bb uv2 (>15s) or < eldef > = ?1? or < cpfail > = ?1? (>15s) setposition frame getfullstatus or getstatus frame getfullstatus or getstatus frame ... ? the circuit is driven in motor shutdown mode ? the application is not aware of this ? the position set ? point is updated by the lin master ? motor shutdown mode ? no motion ? the application is still unaware ? the application is aware of a problem ? possible confirmation of the problem ? reset < tw > or < tsd > or < uv2 > or < steploss > or < eldef > or < cpfail > by the application ? possible new detection of over temperature or low voltage or electrical problem ? circuit sets < tw > or < tsd > or < uv2 > or < steploss > or < eldef > or < cpfail > again at ?1? important: while in shutdown mode, since there is no hold current in the coils, the mechanical load can cause a step loss, which indeed cannot be flagged by the amis ? 30623. if the lin communication is lost while in shutdown mode, the circuit enters the sleep mode immediately. note: the priority encoder is describing the management of states and commands. warning: the application should limit the number of consecutive getstatus or getfullstatus commands to try to get the amis ? 30623 out of shutdown mode when this proves to be unsuccessful, e.g. there is a permanent defect. the reliability of the circuit could be altered since get(full)status attempts to disable the protection of the h ? bridges. motion detection motion detection is based on the back emf generated internally in the running motor. when the motor is blocked, e.g. when it hits the end ? stop, the velocity and as a result also the generated back emf, is disturbed. the amis ? 30623 senses the back emf, calculates a moving average and compares the value with two independent threshold levels: absolute threshold (absthr[3:0] ) and delta threshold ( amis ? 30623 http://onsemi.com 34 table 26. truth table condition amis ? 30623 http://onsemi.com 35 fs2stallen if amis ? 30623 http://onsemi.com 36 lin controller general description the lin (local interconnect network) is a serial communications protocol that efficiently supports the control of mechatronics nodes in distributed automotive applications. the physical interface implemented in the amis ? 30623 is compliant to the lin rev. 2.0 & 2.1 specifications. it features a slave node, thus allowing for: ? single ? master / multiple ? slave communication ? self synchronization without quartz or ceramics resonator in the slave nodes ? guaranteed latency times for signal transmission ? single ? signal ? wire communication ? transmission speed of 19.2 kbit/s ? selectable length of message frame: 2, 4, and 8 bytes ? configuration flexibility ? data checksum (classic checksum, cf. lin1.3) security and error detection ? detection of defective nodes in the network it includes the analog physical layer and the digital protocol handler. the analog circuitry implements a low side driver with a pull ? up resistor as a transmitter, and a resistive divider with a comparator as a receiver. the specification of the line driver/receiver follows the iso 9141 standard with some enhancements regarding the emi behavior. figure 21. lin interface lin rxd txd slope control filter lin protocol handler hw0 hw1 hw2 to control block from otp lin address 30 k v bb slave operational range for proper self synchronization the lin interface will synchronize properly in the following conditions: ? vbat 8 v ? ground shift between master node and slave node < 1v it is highly recommended to use the same type of reverse battery voltage protection diode for the master and the slave nodes. functional description analog part the transmitter is a low ? side driver with a pull ? up resistor and slope control. the receiver mainly consists of a comparator with a threshold equal to v bb /2. figure 5 shows the characteristics of the transmitted and received signal. see ac parameters for timing values. protocol handler this block implements: ? bit synchronization ? bit timing ? the mac layer ? the llc layer ? the supervisor error status register the lin interface implements a register containing an error status of the lin communication. this register is as follows: table 30. lin error register bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 not used not used not used not used time out error data error flag header error flag bit error flag amis ? 30623 http://onsemi.com 37 with: data error flag: (= checksum error + stopbit error + length error) header error flag: (= parity error + synchfield error) time out flag: the message frame is not fully completed within the maximum length bit error flag: difference in bit sent and bit monitored on the lin bus a getfullstatus frame will reset the error status register. physical address of the circuit the circuit must be provided with a physical address in order to discriminate this circuit from other ones on the lin bus. this address is coded on 7 bits, yielding the theoretical possibility of 128 different circuits on the same bus. it is a combination of 4 otp memory bits and of the 3 hardwired address bits (pins hw[2:0]). however the maximum number of nodes in a lin network is also limited by the physical properties of the bus line. it is recommended to limit the number of nodes in a lin network to not exceed 16. otherwise the reduced network impedance may prohibit a fault free communication under worst case conditions. every additional node lowers the network impedance by approximately 3%. ad6 ad5 ad4 ad3 ad2 ad1 ad0 physical address pa3 pa2 pa1 pa0 otp memory hw0 hw1 hw2 hardwired bits note: pins hw0 and hw1 are 5 v digital inputs, whereas pin hw2 is compliant with a 12 v level, e.g. it can be connected to vbat or gnd via a terminal of the pcb. for setpositionshort it is recommended to set hw0, hw1 and hw2 to ?1?. lin frames the lin frames can be divided in writing and reading frames. a frame is composed of an 8 ? bit identifier followed by 2, 4 or 8 data ? bytes and a checksum byte. note: the checksum is conform lin1.3, classic checksum calculation over only data bytes. (checksum is an inverted 8 ? bit sum with carry over all data bytes.) writing frames will be used to: ? program the otp memory; ? configure the component with the stepper ? motor parameters (current, speed, stepping ? mode, etc.); ? provide set ? point position for the stepper ? motor; ? control the motion state machine. whereas reading frames will be used to: ? get the actual position of the stepper ? motor; ? get status information such as error flags; ? verify the right programming and configuration of the component. writing frames the lin master sends commands and/or information to the slave nodes by means of a writing frame. according to the lin specification, identifiers are to be used to determine a specific action. if a physical addressing is needed, then some bits of the data field can be dedicated to this, as illustrated in the example below. identifier byte data byte 1 data byte 2 id0 id1 id2 id3 id4 id5 id6 id7 phys. address command parameters (e.g. position) amis ? 30623 http://onsemi.com 38 id data1 data2 data3... id0 id1 id2 id3 id4 id5 id6 id7 command physical address broad parameters... note: amis ? 30623 http://onsemi.com 39 type #8: eight data bytes preparing frame with 0x3c identifier. table 32. preparing frame #8 byte content structure bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 0 identifier 0 0 1 1 1 1 0 0 1 data 1 appcmd = ... 2 data 2 1 cmd[6:0] 3 data 3 1 ad[6:0] 4 data 4 data4[7:0] ff 5 data 5 data5[7:0] ff 6 data 6 data6[7:0] ff 7 data 7 data7[7:0] ff 8 data 8 data8[7:0] ff 9 checksum checksum over data where : appcmd: if = ?0x80? this indicates that data 2 contains an application command cmd[6:0]: application command ?byte? ad[6:0]: slave node physical address data[7:0]: data transmitted dynamic assignment of identifiers the identifier field in the lin datagram denotes the content of the message. six identifier bits and two parity bits are used to represent the content. the identifiers 0x3c and 0x3f are reserved for command frames and extended frames. slave nodes need to be very flexible to adapt itself to a given lin network in order to avoid conflicts with slave nodes from different manufacturers. dynamic assignment of the identifiers will fulfill this requirement by writing identifiers into the circuits ram. rom pointers are linking commands and dynamic identifiers together. a writing frame with identifier 0x3c issued by the lin master will write dynamic identifiers into the ram. one writing frame is able to assign 4 identifiers; therefore 3 frames are needed to assign all identifiers. each rom pointer amis ? 30623 http://onsemi.com 40 command assignment via dynamic id during operation dynamic id rom pointer application command user defined 0011 getstatus user defined 0100 setposition user defined 0101 setpositionshort (1 m) user defined 0110 setpositionshort (2 m) user defined 0111 setpositionshort (4 m) user defined 0000 generalpurpose 2 bytes user defined 0001 generalpurpose 4 bytes user defined 1000 preparation frame user defined 0010 getactualpos figure 22. principle of dynamic command assignment commands table table 34. lin commands with corresponding rom pointer command mnemonic command byte (cmd) dynamic id (example) rom pointer getactualpos 000000 0x00 100xxx 0010 getfullstatus 000001 0x01 n.a. getotpparam 000010 0x02 n.a. getstatus 000011 0x03 000xxx 0011 gotosecureposition 000100 0x04 n.a. hardstop 000101 0x05 n.a. resetposition 000110 0x06 n.a. runvelocity 010111 0x17 n.a. setdualposition 001000 0x08 n.a. setmotorparam 001001 0x09 n.a. setotpparam 010000 0x10 n.a. setstallparam 010110 0x16 n.a. setposition (16 ? bit) 001011 0x0b 010xxx 0100 setpositionshort (1 motor) 001100 0x0c 001001 0101 setpositionshort (2 motors) 001101 0x0d 101001 0110 setpositionshort (4 motors) 001110 0x0e 111001 0111 setposparam 101111 0x2f 110xxx 1001 sleep n.a. n.a. softstop 001111 0x0f n.a. testbemf 011111 0x1f n.a. dynamic id assignment 010001 0x11 n.a. general purpose 2 data bytes 011000 0000 general purpose 4 data bytes 101000 0001 preparing frame 011010 1000 note: ?xxx? allows addressing physically a slave node. therefore, these dynamic identifiers cannot be used for more than eight s tepper motors. only ten rom pointers are needed for the amis ? 30623. amis ? 30623 http://onsemi.com 41 lin lost behavior introduction when the lin communication is broken for a duration of 25000 consecutive frames (= 1,30s @ 19200 kbit/s) amis ? 30623 sets an internal flag called ?lin lost?. the functional behavior depends on the state of otp bits amis ? 30623 http://onsemi.com 42 important remarks: 1. the secure position has a resolution of 11 bit. 2. same behavior in case of hw2 float (= lost lin address), except for entering sleep mode. if hw2 is floating, but there is lin communication, sleep mode is not entered. see also hardwired address hw2 . figure 24. case a: lin lost during normal operation setmotorparam (ram content is overwritten) lin bus ok normal operation yes a failsafe = 1 no no yes reference done? first motion of dualposition half the position range negative direction at stall ? > actpos = ?0000? secure positioning to secpos stored in ram stop sleepen = 1 sleep no yes yes no stop no yes getfullstatus secpos 0x400 amis ? 30623 http://onsemi.com 43 lin lost before or at power on if the lin communication is lost before or at power on, the |